package cn.nexd.location;

/**
 * Nexd Location 的定位结果回调。
 * 运行在主线程.
 * Created by codingfish on 15/9/28.
 */
public interface NexdLocationListener {

    /**
     * 定位开始的时候调用.在每次显式的调用 startLocation 之后调用
     */
    void onLocationStart();

    /**
     * 成功定位出坐标点之后回调.
     *
     * @param locationResult 定位结果
     */
    void onLocationSuccess(long locationTaskId, LocationResult locationResult);

    /**
     * 定位失败之后回调.但是不影响到接下来的定位.
     * <p/>
     * 定位过程中没有定位到坐标点 或是定位设备正在初始化的情况下会调用.一般不需要处理.
     *
     * @param locationFailedType    失败类型 ,具体请参阅 NexdLocation
     * @param locationFailedMessage 失败类型解释 ,具体请参阅 NexdLocation
     */
    void onLocationFailed(int locationFailedType, String locationFailedMessage);

    /**
     * 定位中断之后回调,在设备不能完成定位的情况下调用.
     * <p/>
     * 定位过程中出现一些灾难性事故或者当前设备不具备定位能力的时候调用,开发人员需要自行处理该消息.
     *
     * @param locationInterruptType    中断类型 ,具体请参阅 NexdLocation
     * @param locationInterruptMessage 中断类型解释 , 具体请参阅 NexdLocation
     */
    void onLocationInterrupt(int locationInterruptType, String locationInterruptMessage);
}
